/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package compilador;




/**
 *
 * @author Henrique
 */
public class zTeste {

    private void analisa_bloco() {

        this.analisa_et_variaveis();
        this.analisa_subrotinas();
        this.analisa_comandos();
    }



    private void analisa_et_variaveis() {

        this.analisa_variaveis();
    }



    private void analisa_variaveis() {

        this.analisa_tipo();
    }



    private void analisa_tipo() {    }



    private void analisa_comandos() {
        
        this.analisa_comando_simples();
    }



    private void analisa_comando_simples() {
        
        this.analisa_atrib_chprocedimento();
        this.analisa_se();
        this.analisa_enquanto();
        this.analisa_leia();
        this.analisa_escreva();
        this.analisa_comandos();
    }



    private void analisa_atrib_chprocedimento() {
        
        this.analisa_atribuicao();
        this.analisa_chamada_procedimento();
    }



    private void analisa_leia() {}



    private void analisa_escreva() {}



    private void analisa_enquanto() {
        
        this.analisa_expressao();
        this.analisa_comando_simples();
    
    }



    private void analisa_se() {
        
        this.analisa_expressao();
        this.analisa_comando_simples();
    }



    private void analisa_subrotinas() {
       
        this.analisa_declaracao_procedimento();
        this.analisa_declaracao_funcao();
    }



    private void analisa_declaracao_procedimento() {
        
        this.analisa_bloco();
    }



    private void analisa_declaracao_funcao() {
        
        this.analisa_bloco();
    }



    private void analisa_expressao() {
        
        this.analisa_expressao_simples();
    }



    private void analisa_expressao_simples() {
        
        this.analisa_termo();
    }



    private void analisa_termo() {
        
        this.analisa_fator();
    }



    private void analisa_fator() {
       
        this.analisa_fator();
        this.analisa_expressao();
    }



    private void analisa_atribuicao() {
        
        this.analisa_expressao();
    }



    private void analisa_chamada_procedimento() {}



    private void analisa_chamada_funcao() {}
}
